Go 有提供測試功能,寫測試本身所使用語言也是 Go,不需要新的語法、規則及工具,只需要依照一定的慣例來撰寫。
寫測試的目的就是要確保程式碼的品質,減少發生錯誤的機率,也可以知道執行的行為是否為(或是說,符合需求嗎?
其中有幾點寫測試需要定義清楚的是:
因為有時候碰到覺得不好寫測試的情況,並不一定是因為不會寫,而是被測試的方法難以測試,這時候想的應該是如何重構被測試的方法。
但可能會想說重構的第一步就是要寫測試,這是正確的,但是我想表達的是測試與重構是應該互相搭配,反覆幾次這樣的流程之後,測試用程式質量也會提升。
先針對需要測試的檔案,在同一個資料夾下建立與需要測試的檔案同名後面加上 _test
的檔案
folder
|_ custom
|_ math.go
|_ math_test.go
撰寫測試,測試測試
// main.go
/*
func Add(a, b int) int {
return a + b
}
*/
package math
import "testing"
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Add(2, 3) returned %d, expected 5", result)
}
}
執行測試
go test math_test.go
GitHub Repo: stretchr/testify
Go code (golang) set of packages that provide many tools for testifying that your code will behave as you intend.